package srv;

import java.util.Date;
import java.util.List;

import dao.CotizacionDAO;
import dto.FormaPagoTO;
import Dominio.Cliente;
import Dominio.Cotizacion;
import Dominio.ItemSolicitudDeCotizacion;
import Dominio.SolicitudDeCotizacion;

public class srvCotizacion {
	
	private static CotizacionDAO daoCotizacion = CotizacionDAO.getInstancia();
	
	
	public void persistCotizacion(Cotizacion cotizacion) 
	{
		daoCotizacion.persistCotizacion(cotizacion);
	}
	
	public void updateCotizacion(Cotizacion cotizacion)
	{
		daoCotizacion.updateCotizacion(cotizacion);
	}
	
	//El nro de la cotizacion es el ID
	public Cotizacion getCotizacion(int numeroCotizacion)
	{
		return daoCotizacion.getCotizacion(numeroCotizacion);
	}
	
	public SolicitudDeCotizacion getSolicitudCotizacion(int numeroSolicitud)
	{
		return daoCotizacion.getSolicitudCotizacion(numeroSolicitud);
	}
	
	public void agregarSolicitudCotizacion(List<SolicitudDeCotizacion> items)
	{
		daoCotizacion.agregarSolicitudCotizacion(items);
	}
	
	public void agregarSolicitud(SolicitudDeCotizacion sc)
	{
		daoCotizacion.agregarSolicitud(sc);
	}
	
	public List<SolicitudDeCotizacion> SolicitudesDeClientes(Cliente cliente)
	{
		return daoCotizacion.SolicitudesDeClientes(cliente);
	}

	public List<ItemSolicitudDeCotizacion> listaDeItemsDeSolicitud (SolicitudDeCotizacion solicitudCotizacion)
	{
		return daoCotizacion.listaDeItemsDeSolicitud(solicitudCotizacion);
	}
	
	public List<Cotizacion> listaDeCotizaciones (SolicitudDeCotizacion solicitudCotizacion)
	{
		return daoCotizacion.listaDeCotizaciones(solicitudCotizacion);
	}	
	
	public void cambiarEstado(Cotizacion cotizacion, String nuevoEstado){
		cotizacion.setEstado(nuevoEstado);
		daoCotizacion.updateCotizacion(cotizacion);
	}
	
	public void asignarSolicitudCotizacion(Cotizacion cotizacion, SolicitudDeCotizacion solicitudCotizacion){
		cotizacion.setSolicitudDeCotizacion(solicitudCotizacion);
		daoCotizacion.updateCotizacion(cotizacion);
	}
	
	public Cotizacion crearCotizacion(Date date, Date date2, Date date3,
			String estado, FormaPagoTO formaPagoTO){
		Cotizacion cotizacion = new Cotizacion();
		
		cotizacion.setFechaEnvio(date);
		cotizacion.setFechaCotizacion(date2);
		cotizacion.setFechaVencimiento(date3);
		cotizacion.setEstado(estado);
		cotizacion.setFormaPago(null);
		daoCotizacion.persistCotizacion(cotizacion);
		return cotizacion;
	}

	public void crearCotizacion(Cotizacion coti) 
	{
		daoCotizacion.persistCotizacion(coti);
	}

}
